package cn.com.zero.front.auth.mapper;

import cn.com.zero.front.auth.po.AuthenticationApplyPO;
import cn.com.zero.front.auth.po.AuthenticationInfoPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @author liuxh
 * @version 1.0.0
 * @Description 实名mapper
 * @createTime 2023/4/4 15:37
 */
@Mapper
@Repository
public interface IRealNameMapper {

    /**
     * 查询指定证件的实名信息数据条数
     *
     * @param cardNo   证件号
     * @param cardType 证件类型
     * @return 数据条数
     */
    int queryAuthenticationCount(@Param("cardNo") String cardNo, @Param("cardType") Integer cardType);

    /**
     * 查询用户待审核的实名申请数据条数
     *
     * @param userId 用户ID
     * @return 数据条数
     */
    int getAuthenticationApplyCount(@Param("userId") String userId);

    /**
     * 查询用户实名信息
     *
     * @param userId  用户ID
     * @param is_lock 是否锁表
     * @return 实名信息
     */
    AuthenticationInfoPO queryAuthenticationInfo(@Param("userId") String userId, @Param("is_lock") boolean is_lock);

    /**
     * 添加实名申请
     *
     * @param authenticationApplyPo 申请信息
     */
    void insertAuthenticationApply(AuthenticationApplyPO authenticationApplyPo);

    /**
     * 查询用户最新的实名申请
     *
     * @param userId 用户ID
     * @return 实名申请
     */
    AuthenticationApplyPO queryAuthenticationApply(@Param("userId") String userId);
}
